X-Git-Url: https://git.r.bdr.sh/rbdr/super-polarity/blobdiff_plain/0cafec445af0a97d96feb1a1daefa1486142c73f..4fc09567c557a1110180940cca40fd7144921026:/Super%20Polarity/Actors/Ship.cs diff --git a/Super Polarity/Actors/Ship.cs b/Super Polarity/Actors/Ship.cs deleted file mode 100644 index 229f639..0000000 --- a/Super Polarity/Actors/Ship.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; - -namespace SuperPolarity -{ - class Ship : Actor - { - public enum Polarity : byte { Negative, Positive, Neutral }; - - public Polarity CurrentPolarity; - public uint MagneticRadius; - - public float FleeVelocity; - public float ActVelocity; - public float ChargeVelocity; - public int RepelRadius; - - protected bool Magnetizing; - - public Ship(SuperPolarity newGame) : base(newGame) { - MagneticRadius = 250; - RepelRadius = 100; - - HP = 2; - - FleeVelocity = 5; - ActVelocity = 1; - ChargeVelocity = 2.5f; - CurrentPolarity = Polarity.Neutral; - Magnetizing = false; - } - - public virtual void SwitchPolarity() - { - if (CurrentPolarity == Polarity.Positive) - { - CurrentPolarity = Polarity.Negative; - } - else - { - CurrentPolarity = Polarity.Positive; - } - } - - public virtual void SetPolarity(Polarity newPolarity) - { - CurrentPolarity = newPolarity; - } - - public virtual void Shoot() - { - } - - public override void Update(GameTime gameTime) - { - base.Update(gameTime); - Magnetizing = false; - } - - public virtual void Magnetize(Ship ship, float distance, float angle) - { - Magnetizing = true; - Polarity polarity = ship.CurrentPolarity; - - if (polarity != CurrentPolarity) - { - Attract(angle); - } - else - { - Repel(distance, angle); - } - } - - protected void Attract(float angle) - { - Velocity.X = (float) (ChargeVelocity * Math.Cos(angle)); - Velocity.Y = (float) (ChargeVelocity * Math.Sin(angle)); - } - - protected void Repel(float distance, float angle) - { - if (distance > RepelRadius) { Magnetizing = false; return; } - Velocity.X = -(float)(FleeVelocity * Math.Cos(angle)); - Velocity.Y = -(float)(FleeVelocity * Math.Sin(angle)); - } - } -}